說完了建置 Spring Boot 專案背後重要的功臣之一——Maven後,讓我們繼續回到Spring Boot,來好好聊一下 Spring Boot 的核心設計原則之一 即控制反轉(Inversion of Control, IoC)。
在物件導向設計中,IoC 是一個非常重要的原則,它的目的在於降低程式碼間的耦合性。
假設我們有多個類別(class)都需要呼叫某個特定類別的方法。如果這個方法需要修改,那麼所有依賴它的程式碼也都得跟著調整。隨著系統規模的擴大,這種情況會變得越來越常見,進而增加維護成本和修改的難度,因為類別之間的耦合度太高。為了解決這個問題,避免物件直接控制其他物件,控制反轉(Inversion of Control, IoC)的概念橫空出世。
IoC 的優點是提高了程式的模組化、可測試性和可維護性。在 Spring Boot 中,IoC 容器(IoC Container)負責管理所有 Bean 的生命週期和依賴關係,開發者只需要專注於邏輯實現,不用去管理物件的生成與初始化,將控制權交給容器來處理。
講了這麼多那技術上該如何實踐這個概念呢?
我們可以透過 依賴注入(Dependency Injection, DI) 或 依賴查找(Dependency Lookup, DL) 來達成 IoC
明天會再繼續介紹依賴注入的使用方式